package com.hhs.storage.bean;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.hhs.storage.util.SysUtil;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 *
 * </p>
 *
 * @author hhs
 * @since 2023-02-10
 */
@Data
public class ProjectWorkFlow implements Serializable {

    public static final int STATUS_CREATE=0;//待完成
    public static final int STATUS_COMPLETE=1;//已完成
    private String id;

      /**
     * 工序排序用
     */
      private Integer step;
    /**
     * 标题
     */
    private String title;
      /**
     * 内容
     */
      private String content;

      /**
     * 项目计划id
     */
      private String projectPlanId;

      /**
     * 状态0未完成，1已完成
     */
      private Integer status;

      /**
     * 创建时间
     */
      @JSONField(format = "yyyy-MM-dd HH:mm:ss")
      @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
      private LocalDateTime createTime;

      /**
     * 完成时间
     */
      @JSONField(format = "yyyy-MM-dd HH:mm:ss")
      @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
      private LocalDateTime completeTime;

    public String getStatusName(){
        return SysUtil.PROJECT_WORKFLOW_STATUS_MAP.get(this.status);
    }
    // type= null ，表示项目计划里的工序
    // type =2 ，表示领导交代里领导工序
    // type =3，表示领导交代里的职员工序
    // type =4，表示备忘录的工序
    private Integer type;
    /**
     * 第几行
     */
    private Integer rowIndex;
    /**
     * 第几行
     */
    private String userId;
    /**
     * 用户名
     */
    @TableField(exist = false)
    private String userName;
    /**
     * 会签用户
     */
    @TableField(exist = false)
    private List<ZrSimulate> hqUsers=new ArrayList<>();
    /**
     * 附件ids
     */
    @TableField(exist = false)
    private List<AttachmentList> attachmentLists=new ArrayList<>();
    /**
     * 留言数目
     */
    @TableField(exist = false)
    private Integer attC;
}
